(1) Field of the Invention
The present invention relates to a technology for decoding compressed video data.
(2) Description of the Related Art
In recent years, progress has been made in the digitization of moving picture data. It has become common practice to compress moving picture data in order to shorten transmission times and avoid overwhelming transmission bandwidths when the moving picture data is transmitted in large quantities or recorded on recording media. Compression is often carried out using compression techniques which comply with standards such as MPEG (Moving Pictures Experts Group) 2 and MPEG-4AVC. See “ISO/IEC (International organization for Standardization/International Electro-technical Commission) 13818-2” for details of the MPEG 2 standard, and “ITU-T (International Telecommunications union-Telecommunications standardization sector) H.264 for details of the MPEG-4AVC standard.
The moving picture data encoding methods of the MPEG standards make use of a technique known as motion detection to compress the moving picture data.
The compressed moving picture data is then decoded by performing processing known as motion compensation processing, which is the inverse process of the motion detection. Simply stated, motion detection is a method for efficiently compressing video data by detecting the movement of objects in consecutive frames. In motion detection, a motion vector indicating how far and in what direction a macroblock has moved between a frame to be encoded and a reference frame is calculated for each of a plurality of macroblocks (e.g. 16×16 pixel macroblocks). The motion vector and difference data between the macroblock of the reference frame and the macroblock of the frame to be encoded are calculated. In decoding, the motion vector and the difference data are used in the motion compensation processing to reproduce the macroblock in the target frame. Since the difference data has a data size substantially smaller than the original pixel data, a high level of compression is possible. Reducing the data size in this way enables a considerable improvement in the speed of data transmission in comparison to when the video data is not compressed.
In the MPEG-4AVC standard the sizes of the macroblocks are 16×16 pixels, 8×16 pixels, 16×8 pixels, and 8×8 pixels. The 8×8 pixel macroblock may be divided into sub-macroblocks of 8×4 pixels, 4×8 pixels and 4×4 pixels. Sub-macroblocks of 8×8 pixels are a further possibility.
In a software implementation of a single device supporting the plurality of macroblock types, a different program must be written for each sub-macroblock and macroblock size. To produce the video decoding device therefore requires the time and effort to write seven different programs. Moreover, the video decoding device has to store these programs in memory, which undesirably consumes memory capacity.
In a hardware implementation of the device supporting the plurality of macroblock types, on the other hand, calculating devices must be provided for each macroblock and sub-macroblock size. This may lead to increases in cost and required installation space.